package p1200;

import java.util.HashMap;
import java.util.Map;

public class Leetcode_1248 {
    public int numberOfSubarrays(int[] nums, int k) {
        for (int i = 0; i < nums.length; i++) {
            if ((nums[i] & 1) == 1) {
                nums[i] = 1;
            } else {
                nums[i] = 0;
            }
        }
        int res = 0;
        long sum = 0L;
        Map<Long, Integer> map = new HashMap<>();
        map.put(0L, 1);
        for (int i = 1; i <= nums.length; i++) {
            sum += nums[i - 1];
            res += map.get(sum - k) == null ? 0 : map.get(sum - k);
            map.put(sum, map.get(sum) == null ? 1 : map.get(sum) + 1);
        }
        return res;
    }

    public static void main(String[] args) {
        Leetcode_1248 l = new Leetcode_1248();
        System.out.println(l.numberOfSubarrays(new int[]{2,2,2,1,2,2,1,2,2,2}, 2));
    }
}
